/**
 * 文件名：@LoginSecurityProcessor.java <br/>
 * 包名：cn.efunbox.afw.web.security.processor <br/>
 * 项目名：afw-web <br/>
 * @author xtwin <br/>
 */
package cn.efunbox.afw.web.security.processor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import cn.efunbox.afw.core.exception.SecurityException;
import cn.efunbox.afw.web.UserResolver;

/**
 * 类名：LoginSecurityProcessor  <br />
 *
 * 功能：登录安全处理器
 *
 * @author xtwin <br />
 * 创建时间：2016年8月4日 上午10:34:14  <br />
 * @version 2016年8月4日
 */
public class LoginSecurityProcessor implements SecurityProcessor {
	
	// 用户解析器
	protected UserResolver<?> userResolver;

	/**
	 * 功能: <br/>
	 * 
	 * 重写：xtwin <br/>
	 * 
	 * @version ：2016年8月4日 上午10:34:31<br/>
	 * 
	 * @param request
	 * @param response
	 * @param handler
	 * @throws Exception <br/>
	 * @see cn.efunbox.afw.web.security.processor.SecurityProcessor#process(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, java.lang.Object)
	 */
	@Override
	public void process(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
		if (null == userResolver.resolve(request)) {
			throw new SecurityException("has.no.login");
		}
	}

	/**
	 * @version 2016年8月4日-上午10:34:52
	 */
	public void setUserResolver(UserResolver<?> userResolver) {
		this.userResolver = userResolver;
	}
}
